//
//  JKStatusModel.swift
//  JKWeibo
//
//  Created by albert on 16/5/15.
//  Copyright © 2016年 albert. All rights reserved.
//  首页微博状态数据模型

import UIKit

class JKStatusModel: NSObject {
    /** 微博创建时间 */
    var created_at: String?
    /** 字符串型的微博ID */
    var idstr: String?
    /** 微博正文内容 */
    var text: String?
    /** 微博来源 */
    var source: String?
    /** 微博作者的用户信息字段 */
    var user: JKUserModel?
    /** 配图数组，新浪的文档没有写，但是返回的确实有，是个字典数组 */
    var pic_urls: [[String: AnyObject]]?
    /** 转发微博 */
    var retweeted_status: JKStatusModel?
    
    init(dict: [String : AnyObject]) {
        super.init()
        setValuesForKeysWithDictionary(dict)
    }
    
    /// KVC的setValuesForKeysWithDictionary方法内部会调用下面这个方法
    override func setValue(value: AnyObject?, forKey key: String) {
        // 拦截user赋值操作
        if key == "user" {
            // 将user字典转模型
            user = JKUserModel(dict: value as! [String : AnyObject])
            return
        }
        
        if key == "retweeted_status" {
            retweeted_status = JKStatusModel(dict: value as! [String : AnyObject])
            return
        }
        
        super.setValue(value, forKey: key)
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {
        
    }
    
    override var description: String {
        let keys = ["created_at", "idstr", "text", "source"]
        let dict = dictionaryWithValuesForKeys(keys)
        return "\(dict)"
    }
}
